package main

import (
	"encoding/json"
	"errors"
	"log"
	"net/http"

	config "gitcode.com/happy-mj/happy-config"
	"gitcode.com/happy-mj/happy-mcp/server"
)

func init() {
	config.BuildConfig()
	err := config.Init("")
	if err != nil {
		return
	}
}

func main() {
	mux := http.NewServeMux()

	// 注册 MCP 服务路由（核心：不同路由对应不同 MCP Server）
	mux.Handle("/mcp/route", server.RouteServer())     // 路径规划：/mcp/route
	mux.Handle("/mcp/weather", server.WeatherServer()) // 天气查询：/mcp/weather
	mux.Handle("/mcp/sales", server.SalesServer())     // 销售数据查询：/mcp/sales

	// 可选：添加健康检查路由（用于监控）
	mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Content-Type", "application/json")
		w.WriteHeader(http.StatusOK)
		json.NewEncoder(w).Encode(map[string]string{"status": "healthy", "port": "2507"})
	})

	// 5. 配置并启动 HTTP 服务（统一监听 2507 端口）
	httpServer := &http.Server{
		Addr:    ":2507", // 统一端口
		Handler: mux,
	}

	// 6. 启动服务
	log.Printf("统一 MCP 服务启动成功，监听端口：2507")
	log.Printf("销售数据查询服务：http://0.0.0.0:2507/mcp/sales")
	log.Printf("路径规划服务：http://0.0.0.0:2507/mcp/route")
	log.Printf("天气查询服务：http://0.0.0.0:2507/mcp/weather")
	log.Printf("健康检查：http://0.0.0.0:2507/health")

	if err := httpServer.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
		log.Fatalf("服务启动失败：%v", err)
	}
}
